The invention relates generally to the art of computer graphics and animation. More particularly, the invention relates to efficient approximation of finite light sources using point light sources of varying location and intensity.
In order to render a scene in computer graphics or computer animation, computer artists and animators often will place one or more light sources within the scene in order to illuminate it. If, for instance, an animator wished to render a room that was lit by two light bulbs, he or she would construct two light sources, representing the light bulbs, and then calculate the illumination effect of these two sources. The standard construct for such directional light sources is the point source, whereby all light is considered to emanate from a single point.
The point source is the standard construct because calculation of its illumination effect is computationally straightforward. For any given surface point within the scene, the rendering method need only calculate the effect of a single ray of light, which has a singular direction and intensity. The disadvantage of using the point source is its lack of realism. When illuminated by a point source, any surface point in the scene will either be illuminated by the point light source, or else wholly hidden from it. As a result, shadows and other partial lighting conditions are rendered in an unrealistically sharp, binary manner (see FIG. 5).
One alternative to using a point light source is to use a finite source, one that has an extended shape and size. The light emerging from a finite source will emanate from its entire surface, and not just a single point. Finite sources illuminate a scene in a much more realistic manner. Some surface points will be illuminated by the entire finite light source, others totally hidden from it. More important is the fact that some points will be partially illuminated by the source.
Despite this superior effect, computer artists and animators do not currently use finite light sources to illuminate their graphics and their scenes. Determination of the total contributing light from a finite light source to a surface point, has, till this point, required a numerical integration over the entire surface of the finite source. Such calculations are simply too cumbersome to be practically used in computer animation. Finite light sources are sometimes used to illuminate single computer-generated scenes or xe2x80x9cphotosxe2x80x9d when a highly realistic image is desired and computational speed is not an issue, but even in these situations the computational burden is considered onerous.
Computer artists and animators run into analogous problems when attempting to simulate ambient light such as skylight. Realistic calculations with respect to simulated ambient light sources are also too cumbersome to make them practical. The conventional technique for simulating ambient light, therefore, is to simply turn up the brightness throughout an entire scene, with perhaps gross modifications for surfaces points that obviously will be differentially affected by the light (such as those under dark shadows). The computation required for this is straightforward, even trivial, but the illumination effect is again not very realistic.
The invention relates to a method for approximating the illumination effect of a finite light source by a using a point light source of varying intensity and location. These two variables are manipulated depending on the xe2x80x9cvisibilityxe2x80x9d of the finite light source from the perspective of the surface point being rendered. The result is realistic illumination with minimal computational effort.